package juego;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public abstract class Automata extends Movil {
	
	//atributos de instancia
	protected static int minLimiteEnX = -5;
	protected static int minLimiteEnY = -5;
	protected static int maxLimiteEnX = 405;
	protected static int maxLimiteEnY = 465;
	
	//metodos

	//constructor. recibe una Coordenada
	public Automata(Coordenada ubicacion) {
		super(ubicacion.obtenerCoordenadaX(), ubicacion.obtenerCoordenadaY());
	};
	
	//constructor. recibe 2 enteros
	public Automata(int x, int y) {
		super(x,y);
	}

	protected abstract void movimientoPropio();
	
	protected boolean EstaFueraDelEscenario(Coordenada ubicacion){
		if (ubicacion.obtenerCoordenadaX() < minLimiteEnX ||
			ubicacion.obtenerCoordenadaX() > maxLimiteEnX ||
			ubicacion.obtenerCoordenadaY() < minLimiteEnY ||
			ubicacion.obtenerCoordenadaY() > maxLimiteEnY){
				return true;}
		return false;
	}
	
	protected boolean EstaFueraDelEscenario(int x, int y){
		if (x < minLimiteEnX ||
			x > maxLimiteEnX ||
			y < minLimiteEnY ||
			y > maxLimiteEnY){
				return true;}
		return false;
	}
	
	
	protected void persistirAutomata(Document doc, Element elemento) {
		this.persistirMovil(doc, elemento);
	}
	
	protected static void recuperarAutomata(Element element, Automata automata) {
		Movil.recuperarMovil(element, automata);
	}

}


